package util

import (
	"gitee.com/kuntu-projects/go-kuntu-jkit/base/util/function"
)

// ==================
// util-collection: 集合
// ==================

type collection[E any] interface {
	// Iterable 可迭代接口
	iterable[E]
	// Size 当前集合大小
	Size() int
	// Clear 清空当前集合
	Clear()
	// IsEmpty 当前集合是否为空
	IsEmpty() bool
	// Contains 是否包含
	Contains(E) bool
	// ToSlice 转为切片
	ToSlice() []interface{}
	// Add 添加
	Add(E) bool
	// Remove 移除
	Remove(E) bool
	//RemoveIf 根据根据断言移除
	RemoveIf(predicate function.Predicate[E]) bool
	// AddAll 添加
	AddAll(collection[E]) bool
	// RemoveAll 移除
	RemoveAll(collection[E]) bool
	//// ContainsAll 是否包含
	//ContainsAll(collection[E]) bool
	//// RetainAll 保留当前集合中的元素
	//RetainAll(collection[E]) bool
	//// stream 后续支持
}
